/**
 * Project 67th
 */


#ifndef _TCPCONNECTION_H
#define _TCPCONNECTION_H

#include "SocketIO.h"
#include "Socket.h"
#include "InetAddress.h"

class TcpConnection {
public: 

    /**
     * @param fd
     */
    explicit TcpConnection(int fd);

    ~TcpConnection();

    string receive();

    /**
     * @param msg
     */
    void send(const string & msg);

    string toString();

private:
    InetAddress getLocalAddr();
    InetAddress getPeerAddr();

private: 
    SocketIO _sockIO;

    //对于TcpConnection对象
    //每一个对象代表一条连接
    //用以下的三个数据成员分别存储
    //这条连接对应的文件描述符，以及双端的地址信息
    Socket _sock;
    InetAddress _localAddr;
    InetAddress _peerAddr;
};

#endif //_TCPCONNECTION_H
